<?php
/**
 * Created by PhpStorm.
 * User: mojie126
 * Date: 2017/8/31 0031
 * Time: 上午 9:29
 */

namespace app\common;


use Base32\Base32;

class secret
{
	//加密
	static function encrypt($data, $key = KEY)
	{
		$key = md5($key);
		$x = 0;
		$len = strlen($data);
		$l = strlen($key);
		$char = "";
		$str = "";
		for ($i = 0; $i < $len; $i++) {
			if ($x == $l) {
				$x = 0;
			}
			$char .= $key{$x};
			$x++;
		}
		for ($i = 0; $i < $len; $i++) {
			$str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
		}

		return Base32::encode($str);
	}

	//解密
	static function decrypt($data, $key = KEY)
	{
		$key = md5($key);
		$x = 0;
		$data = Base32::decode($data);
		$len = strlen($data);
		$l = strlen($key);
		$char = "";
		$str = "";
		for ($i = 0; $i < $len; $i++) {
			if ($x == $l) {
				$x = 0;
			}
			$char .= substr($key, $x, 1);
			$x++;
		}
		for ($i = 0; $i < $len; $i++) {
			if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1))) {
				$str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
			} else {
				$str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
			}
		}

		return $str;
	}
}